perm filename HACKER.NS[NS,MRC] blob
sn#314831 filedate 1977-11-03 generic text, type T, neo UTF8
BC-COMPUTERS
(FINANCIAL)
By N.R. KLEINFIELD
c.1977 N.Y. Times News Service
NEW YORK - As George McMahon was driving to work, crime was on his mind. It
was 9:15, and sleep was visibly rolling off him, but he was thinking hard, about
how the problem was going to need more than a million bytes of memory, about the
thousands of bugs he'd have to root out.
''This is really going to be a blockbuster,'' he said. ''One like this can
really do a number on you.''
He cut into the parking lot at AGS Computers in Jericho, N.Y., slid into
the first vacant spot and scuffled his way into the stubby, modern building. The
place was warm with progammers quietly hunkered over their desks, and filled
with the clatter of high-speed readout printers as they poured forth chunks of
black digits. McMahon sat down to work on the program pricking away at him.
Holmes Protection Inc. wanted to have computers monitor alarms in homes and
stores and factories; if a burglar tried to break in, the computers would pass
the word to other computers at Holmes offices.
McMahon is one of 230,000 people in the country who tell computers what to
do. Computers surround us, some 150,000 of them, but they are little more than
electronic rubble without the programmers and their mysterious art. Indeed, if
there were no programmers, society itself would grind to a halt. Yet they are in
painfully short supply.
Tons of want ads for programmers fill classified sections of newspapers,
pledging good money ($10,000 to $35,000) and fast promotions if people will only
sign on. ''We're desperate for bodies,'' says John Imlay, president of the
Software Industry Association. ''Almost every company in this field has openings
and can't fill them. I can tell you there is a lot of programmer raiding going
on. These are valuable, valuable boys.''
McMahon is solidly built, 39, with an angular, cermaic face and dark hair
cropped short. His voice is like a bowling ball in motion: deep and sonorous.
His desk in a snug, woodpaneled office is usually in riotous confusion, brimming
with computer printouts, yellow pads, a Texas Instrument calculator, a bottle of
liquid paper. Atop a bookshelf rests a plaque: ''To err is human; to really foul
things up requires a computer.''
There are two basic kinds of programmers: ''applications'' and ''systems''
people. Systems programmers fret about the detailed and voluminous programs
stored in the machine that allow the computer to function efficiently and to
take on other programs. When computers run amok - spitting out reams of
gibberish or losing data - system people swoop in, sort of like firefighters, to
stamp out the trouble.
Applications programmers like McMahon use the computer to solve problems
from the outside world. They have whipped up programs that enable computers to
open and close venetian blinds, play chess, find proofs for theorems in symbolic
logic, solve trigonometric identities, compose music, read biorhythms and
simulate neuroses. One applications man programmed a computer to imitate a
psychologist: He talked to it, and it talked back, sometimes asking questions
such as, ''So, how do you feel about that?''
McMahon has 14 years of programming under his belt. His employer, AGS
Computers, is a 10-year-old firm (annual revenues of about $8 million) that
designs programs for clients of any ilk. It has four offices in the New York
area and employs about 200 programmers. McMahon recently wrapped up a
computerized pollution control system for the Brooklyn-Battery Tunnel. Before
that, he knocked out a computerized tourist information operation for
Washington, D.C., and he did another program that automated a testing system for
train brakes.
This was begun in July. It won't be done until the end of next year.
Written out, it will probably occupy 700 typed pages. Programs can take days or
years, depending on how tricky they are and how gifted the programmer is. ''This
will be a monster,'' McMahon said.
The computers he is working with are 16 of the IBM Series I minicomputers,
which cost $10,000 to $25,000 and can perform a simple addition in 1.1
micro-seconds, or nearly a million additions a second. Fast, but the top IBM
computer - the 3033, which goes for $3.4 million - can add something in 58
nanoseconds. A nanosecond is a billionth of a second.
McMahon set about trying to explain what a program is.
Programs are commonly described as ''a set of instructions.'' McMahon
agreed it was a sound definition, but he added:
''It must be remembered that the computer is very unforgiving. If you tell
a clerk to do something and your instructions are a shade off, the clerk will
modify them and get the job done. The computer does precisely what you tell it.
Your instructions can be 99.9 percent correct, and the computer won't do what
you intended. You're all right or all wrong.''
One pictures a programmer stooped over his computer terminal hour after
hour, tensely tapping away. The truth is, applications programming is basically
a paper and pencil business. A programmer doesn't see that much of a computer.
McMahon figures he spends maybe a third of his time before a machine.
The first task of the applications programmer is to define the problem
(which can take months) and lay out logical steps to its solution that the
computer can follow which can take months). McMahon works on his yellow pads -
''I go through tons of them. I need a landfill for a wastepaper basket.'' He
puts something down, tears it up, tries a different approach. Computer lingo for
the process is ''iteration.'' You try something, it bombs, you try again. You
iterate.
The better you are, the less you iterate.
Knotty problems like that posed by Holmes are just too mammoth for the mind
to soak in all at once, so McMahon plans to split it into pieces, or
''modules.'' What's complicated about it is that computers are being asked to
replace human judgment. Up until now some 4,000 customers have had their alarms
watched by men. Holmes wants computers to do the alarm watching and to decide
how to act if and when an alarm goes off. But different customers require
different procedures, which is evidenced by the fact that Holmes' outline of the
project fills a report the size of a phone book. All told, McMahon figures the
program will involve more than 100,000 computer instructions. Whereas simple
programs consist of five or six modules, this one is expected to run to more
than a thousand.
''When I get going on a project,'' McMahon said, ''I often let it float
around at the back of my mind and don't bother it too much hoping a solution
will form step by step. I sometimes see the program as a long train passing
through my mind. I know I'm together if I can follow each car as it chugs past.
There's great glee, of course, when the caboose whips by.''
After a program design is done, McMahon starts to code it - to put it in
computer language. Conciseness is important; otherwise a lot of the computer's
costly memory, where the data is stored, will be wasted. McMahon will write the
Holmes program mostly in ''assembly language,'' but a fraction of it will be
done in ''FORTRAN,'' which stands for formula translator. FORTRAN at least has a
rough correspondence to English. Assembly language is a rampant mutation, made
up of mneumonic symbols that stand for incredibly complex computer instructions.
For example, ''SFNED'' stands for ''scan byte field not equal and decrement,''
and ''FMVCD'' sounds like a football play: ''floating move and convert double.''
Whatever language they use, programmers, like writers, acquire their own
individual styles. Ten programmers given the same problem will arrive at 10
different programs, and they will all work.
''A programmer tends to use the same computer instructions over and over,''
McMahon explained, ''or he'll physically structure his programs alike. I worked
with one programmer who used as labels for procedures nothing but obscene words.
No trouble spotting his work.''
While coding, he said that he expends much of his time digging for errors.
This is called ''debugging.'' Programs of any complexity whatsoever inevitably
abound with bugs. ''What you do,'' McMahon said, ''is to set up little test
cases for pieces of your program to run on. Then you steady yourself and wait
for the errors. Believe me, they'll come.''
Computers behave in quirky ways when they hit snags. One common reaction is
for them to print out all the data they've been given. This is known as a
''dump.'' The other typical response is to stop running the program and note
that an error has been committed. Programmers can have a computer state
whatever they want when it comes across an error, anything from a dry, ''There's
an error,'' to ''Congratulations, bimbo, you've done it again.''
Finding bugs can be mordant work; even such seemingly frothy concerns as
punctuation can foul things up. In the early 1960s a rocket launched from Cape
Kennedy en route to Venus started lurching wildly off course and had to be
blasted apart. It was determined that a hyphen had been left out of the program
for the flight. It was probably the most expensive hyphen in history. The rocket
cost $18.5 million.
Once the program has been debugged, McMahon pieces all the modules together
and runs ''the whole ball of wax - the ultimate test. Then he does the
documentation, which is to type up the whole process in a presumably coherent
report. The effort is as much for McMahon's benefit as the user's. ''Six months
later,'' he said, ''you could go back to a program and not know how the fruit
you did it. The man in the moon could have written it.''
Some common myths have been propagated about programmers, the best known
being that all programmers are hippie types with scraggly beards and rotten
personalities. ''There were a lot of those back in the 1960s,'' he said, ''one
reason being, I suppose, because programmers held one of the few office jobs
that allowed lots of independence. But there are all types now.''
Independence has always been one of the allures of a programmer's life.
They often find themselves working for people totally in the dark about the
work, leaving them to their own devices. What's more, there's no good way of
checking on a programmer's progress. ''If you want to see how a builder's doing,
you can go and look at the house,'' McMahon said. ''There's not much to look at
with a program until it's all done.''
McMahon stared moodily into space, then went on, ''I would say programmers
are a bit more methodical, a bit more logical in their thinking than the general
population. They tend to be very devoted to their work and put in long hours.
Should you spot someone stumbling down the street with a blank look on his face,
bumping into one telephone pole after another, chances are he's a programmer.
Other than that, there's no real commonality among programmers. I don't know
that we beat our wives any more than anyone else.''
The national shortage of programmers is ironic since, as McMahon says, ''In
an entry position, I suppose anyone could do it.'' The big demand is for
seasoned performers, and there aren't many good programming schools around.
Firms don't have the time to do their own training. So the sort of people
companies want aren't being turned out anywhere near fast enough.
McMahon turned to the subject of the purported evils of automation.
''Computers taking over the world. Computers putting everyone out of work. The
computer as president. The computer as garbageman. Interesting concepts. I
guess I can understand people worrying about them, but I'm not concerned. We're
at such a primitive stage, computers having been with us only 25 years.
Computers can't do everything, and, at least in my lifetime, I don't imagine
they will. The computer is not God. It's a tremendous, tremendous device for
getting things done. But it surely is not God.''
McMahon finished lunch and returned to the AGS building. On the way to his
office he pointed toward a wall and what he called ''one of the better uses of
computers''; a computer picture of a voluptuous nude woman.
''One thing about programs,'' he said as he peeled off his jacket, ''is
that what determines how good a program is varies. If I have a bookkeeping
program for a tiny hardware store, it's not vital that the program run in five
seconds flat, but that it's not long and doesn't require a lot of storage space
in the computer, which is costly. With a program designed to intercept an enemy
missile, speed becomes essential. It doesn't matter how long that program is,
just that it runs like hell and knocks that missile out of the sky before it
goes kabloom on Macy's.''